home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
AGSPPX20.ZIP
/
PPLX.DOC
< prev
next >
Wrap
Text File
|
1996-07-10
|
18KB
|
459 lines
s s
.$ .$
.$$ .$$
.$^$ $$$
.$' $. .s$Ss.. .s$Ss.. `$$ .s$Ss..
.$' $$ .$$$²°^²$$s. .$$$²°^²$$s. `$. .$$$²°^²$$s.
.$$' $$ $$$ `$$ $$$ `$$ $$ $$$ `$$
.s$$$$$s. ²$. `²$$s. ² $$$ ² $$. `²$$s. ²
.sS$²°^°²S$$Ss.² `$$$²' $$$. .sS. $$$ `°²S$Ss.
..ssS$$²' `°²S$s. .$$' `$$$ .s$S²S$. $$$. .s. `°²$s.
²$S²' $Sss. .$$' .$ $$$. .s$S²'.$ $$ $$$$. .$$' `$$
$$$$$ $$$ .$$ `$$$ `²²' .$$ `$ $$$$$ $$$ .$$
$$$$² `$$s. .s$$' `$$s. .s$$' $$$$² `$$s. .s$$'
$$² `²$$$S²' Ms. `²$$$S²' $$² `²$$$S²'
$' $'
C O R P.
PPLX 2.OO
PCBoard Programming Language eXtractor
(C) 1996 Lone Runner
· · ·-───────────────────────────--· · ·
Main Coding - Lone Runner
Parts - The doC
───────────────────────────────────────────────────────────────────────────────
▒▒▌ READ BEFORE USING ! ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
───────────────────────────────────────────────────────────────────────────────
You may use this program provided that :
- You are not part of any federal group (i don't like federal groups)
- You are not part of Clark Development Company (nothing personnal...)
- You planed to use it at home for personnal purposes only (no money here!)
THE AUTHOR MAY NOT BE RESPONSIBLE FOR ANY CHANGE MADE TO ANY PROGRAM
BY USING PPLX. Nobody will ever ever enter an action against Borland
because they made Turbo Debugger or to V Communication because they
made Sourcer. There is no more reason for PPLX author to be responsible
for any law violation by using this software.
If you don't agree with the above terms or if you are not in accordance
with restriction use, you HAVE to delete this software IMMEDIATLY.
Further use of this software will be considered as the acceptance of the
above terms.
───────────────────────────────────────────────────────────────────────────────
▒▒▌ DESCRIPTION ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
───────────────────────────────────────────────────────────────────────────────
PPLX is a PPE decompiler... working with PPE's up to 3.30 handling functions
& procedures, performing heuristic analysis and intelligent postprocessing,
allowing you to remove backdoors, customize uncustomizable PPE's, recover a
lost source code, or have a look into any PPE you choosed to use...
See WHAT'S.NEW for release history.
───────────────────────────────────────────────────────────────────────────────
▒▒▌ INSTALLATION ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
───────────────────────────────────────────────────────────────────────────────
Hmm... copy PPLX.EXE to your UTILS\ or WHATEVERITISCALLED\ subdirectory,
preferably in your PATH...
───────────────────────────────────────────────────────────────────────────────
▒▒▌ USING PPLX ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
───────────────────────────────────────────────────────────────────────────────
PPLX FILENAME[.PPE] [/A] [/L] [/U] [/F]
/N Disable heuristic analysis
/L Don't delete PPU file
/U Only create PPU file
/F Disable postprocessing (Flat PPLX 1.xx decompilation)
ie:
PPLX C:\PCB\PPE\*.PPE /A
PPLX WEEKTOP.PPE /A /L
───────────────────────────────────────────────────────────────────────────────
▒▒▌ POSTPROCESSING ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
───────────────────────────────────────────────────────────────────────────────
Starting from v2.0, PPLX will now postprocess the created source to remove
the nasty PPLC transformations.
■ Original source :
Integer A
For (A=1) To 2
PrintLn "Hello, world."
Next
■ PPLX without Postprocessing :
~~~~~~~
Integer INTEGER001
INTEGER001 = 1
:LABEL000
If (!(((1 < 0) && (INTEGER001 >= 2)) || ((1 >= 0) && (INTEGER001 <= 2)))) Goto LABEL001
PrintLn "Hello, world."
INTEGER001 = INTEGER001 + 1
Goto LABEL000
:LABEL001
■ PPLX with Postprocessing
~~~~
Integer INTEGER001
For INTEGER001 = 1 To 2
PrintLn "Hello, world."
Next
Nice eh? :)
───────────────────────────────────────────────────────────────────────────────
▒▒▌ PPU FILES ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
───────────────────────────────────────────────────────────────────────────────
A .PPU file is simply a v3.xx .PPE decrypted to the v2.0 flat format.
You can run a PPU after renaming it to PPE without any problem provided
you use the right version of PCBoard.
HINT FOR SYSOPS!
Decrypting your PPE's will speed up your system as PCB will not have
to decrypt them before running them.
───────────────────────────────────────────────────────────────────────────────
▒▒▌ TROUBLESHOOTING ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
───────────────────────────────────────────────────────────────────────────────
WARNINGS/ERRORS
───────────────
"x function(s) were declared but not defined..."
"x procedure(s) were declared but not defined..."
This means that, in the original source code, a function was coded but not
used. When PPLC compile the source, if a function is not used, it doesn't
update an important field that holds the function coordinates... In this
case, PPLX will not be able to detect the beginning of the function, and,
if there are local variables, to declare them. The same problem may appear
with procedures.
"Unknown statement xxxx, dunno how to handle it... Skipping!"
This means that an unknown statement was used, theorically, this cannot
happen, but in real life, a corrupted PPE or an anti-decompilation trick
can produce this warning. If an unknown statement is found, it is skipped,
causing some next statements to be irrationnal... Code may redecompile
correctly after some instructions but it is not likely that the code will
be recompilable.
"Unknown function xxxx!"
This is a fatal error, an unknown function cannot be skipped, it is due
to the same things (corrupted PPE, anti-decompilation trick) but cannot
recover.
"FATAL ERROR! ..."
Any error message beginning with "FATAL ERROR" means that the PPE cannot be
decompiled due to one of the following reasons :
NORMAL REASONS
- An unknown anto-decompilation trick was used
- You did not have enough memory
- The PPE was corrupt
- You used PPLX on a PPE compiled by a futur and unsupported PPLC
(currently, PPLX can handle 1.0 to 3.30 which is the latest so far)
SHITTY REASONS THAT SHOULD NOT HAPPEN BUT THEY DO BECAUSE YOU'RE STUPID
- You patched PPLX to make him do some misterious things (hmmm... ;))
- You traced PPLX during decompilation and changed a random variable.
- You patched you PPE before decompiling it, just for trying to make
a brand new anti-decompilation system. (Well... PPE's are encrypted,
changing only one byte will fuck up the rest of the PPE unless you can
decrypt it, patch it, and recrypt it...)
OTHER REASON
- I'm a stupid coder and i forget some bug(s).
PPE'S RUNNING DIFFERENT AFTER BEEING DECOMPILED & RECOMPILED
────────────────────────────────────────────────────────────
Some PPE's (CSSC for example) compute a self check to see if they were
decompiled and recompiled... It is not a big deal because you have the
source so you can remove the self-check test.
ANTI-DECOMPILATION SYSTEMS
──────────────────────────
Sometimes, PPLX will report "Anti-decompilation system stripped!". In fact
this happen when a suposed anti-decompilation system has been found.
Depending on the anti-decompilation trick used, PPLX will remove or
modify the line so it can be decompiled. Sometimes you won't even see
the anti-decompilation in the resulting PPX file, sometimes you will have
something like :
INTEGER001 = INTEGER001 - *
Just modify this line or remove it so the file can be recompiled.
When PPLX remove the line itself, there is always a risk that this line
was really used in the code. For example, if a coder put an anti-
decompilation trick on a line that assigns a variable, he can always
use the result of this assignation elsewhere in the code. Because the line
has been stripped, the PPE will not run as before... Well... Get a life !
you have the code ! Don't expect me to do everything for you ! :)
PPLC BUGS
─────────
We all know this, PPLC is not bug free... unfortunatly, there are cases
where PPLC bugs prevent a source from being decompiled correctly...
In most cases, PPLX will detect the bug and place a warning in comments,
so you can check easily what's going on...
But sometimes PPLX will not detect the bug, simply because PPLC compiled
the thing as another statement... In those cases, PPLX will decompile what
is coded, and will not be able to guess that PPLC was wrong when compiling
it...
For example, try to compile :
IF (!(A == B) && !(C == D)) THEN...
and
IF ((A == B) && !!(C == D)) THEN...
Those two statements are compiled the axact same way by PPLC although they
are not equivalent... However, PPLX will always decompile to the first
case, wich is the most common one (who will put two NOT on the same
test ?!!!) and, more important, the one that PCB actually execute...
───────────────────────────────────────────────────────────────────────────────
▒▒▌ WARNINGz / DISCLAIMER ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
───────────────────────────────────────────────────────────────────────────────
■ This decompiler should work perfectly on your machine as it is the
case on mine. However, some PPE may not decompile, due to some new
anti-decompilation tricks that maybe will cause PPLX to crash... It is
possible, also, that PPLX crash or fail to decompile a PPE because of a
special instruction chain that i didn't manage to handle... In such a
case, please mail me an uuencoded version of the PPE...
■ Do what you want with this... You may use this program in any way you
want, you may destroy it, burn it, eat it, smoke it, inject it, vomit it,
kick it, suck it, piss it, shot it, print it with reversed lines, rename
it to zip, arj, arc or whatever you want, try then to extract it, to
pkzipfix it, you may also perform sort on it, uuencode, crypt it with
PGP, play it on your GUS or even your SB, you may even decompile, modify
it, you may do WHAT YOU WANT, but NO MEMBER OF AEGiS CoRP MAY BE
RESPONSIBLE FOR ANY DAMAGE CAUSED BY THE USE OF THIS PROGRAM OR IT'S
MODIFICATIONS...
■ I don't ask any money for you to use PPLX, so don't expect support if
you experience troubles with this program. If i have time, i will answer
each email, but i cannot garantee this nor. Don't think it is because
i have a big ego, but i simply don't have much time :) Anyway, be
patient, answers may come a lot later than expected, but they may come...
───────────────────────────────────────────────────────────────────────────────
▒▒▌ FINAL WORDS ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
───────────────────────────────────────────────────────────────────────────────
■ All you PPE coders
──────────────────
Stay tuned these months for PowerPPL v3.0, featuring transparent use of
Chicken's AWESOME PPLDebug with your *real* source!
■ Clark Development Company
─────────────────────────
Why do you bother changing the cryptosystem ? As PCB will always have
to decrypt a PPE, you'll never be able to prevent another program from
doing the same...
Decrypting is SLOW ! PPE v3.30 have to be :
- read from disk
- decrypted with your stupid v3.30 XOR "a deux balles"
- AGAIN decrypted with the v3.00 cryptosystem
Repeat this operation ONE variable at a time (!) and then for the code
itself...
For a PPE worth using, this can take SECONDS on a slow machine !
■ Shareware PPE Coders
────────────────────
Shareware PPE ? Come on... be serious.
■ PCB Sysops
──────────
Claiming a PPE is yours by changing a copyright notice will not bring you
fame... It will only bring you more & more lameness...
───────────────────────────────────────────────────────────────────────────────
▒▒▌ CONTACT ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
───────────────────────────────────────────────────────────────────────────────
Don't write me for things like :
"Please, explain me the PPE format"
"Where could i get PPLX source code?"
But write me for anything else...
lone.runner@nuxes.frmug.fr.net
lone.runner@ace.epita.fr
Francis Gastellu on : A.C.E
+33-1-4588-7548
+33-1-4588-8809
Lone Runner on : THE DEADLINE
+33-1-4648-6763
+33-1-4644-5796
UNDERGROUND CAFÉ
+33-1-4882-2581
Don't expect a FAAAAAAAST answer... :)
If you want to send me a postcard, this will be REALLY appreciated!
Of course, if you have too much money, you could send me some or, maybe
a CD, or some hardware :)
Write for anything to :
Francis Gastellu
42 Bd de Stalingrad
94500 Champigny Sur Marne
FRANCE
If, for any reason, you need it, here's my PGP key.
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6
mQCNAi/8EHAAAAEEAKmS4/mymaVeyczvrKdr4sSdj8vKXHWz7SOK5wcI3S/bkIzk
cF7b0/V35uP5ItStUxNsU54zRDS9snl3MH4/9wgcpky/GEGVAeuC0suybpBOLiJP
JKUkffhk2jlB7qFB8+dQhMjBc1iUST8rDSuID7t7ChqdY2xHihxaVwFGSpdVAAUR
tB5sb25lLnJ1bm5lckBudXhlcy5mcm11Zy5mci5uZXS0C0xvbmUgUnVubmVy
=sqjP
-----END PGP PUBLIC KEY BLOCK-----
───────────────────────────────────────────────────────────────────────────────
▒▒▌ SOAP ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
───────────────────────────────────────────────────────────────────────────────
Do you know SOAP ? No ??!!?
Well... SOAP stands for "State Of the Art for PCBoard", it is a fast-growing
internationnal network dedicaced to PCBoard. For now, SOAP is distributed
in France, Spain, Italy, Denmark, Germany and Switzerland, and many groups
has joined (like AEGiS, TNT, ECR and more). The purpose of this net is to
create a big meeting place for all sysops that have interests in PCB
(PPE Coding, Configuration problems, Interfacing, Ansi/ascii art, etc...)
There are also group-restricted confs for PPE group members. An echo file
is under develoment and should spread all productions from all groups on
SOAP and more...
If you want more infos (Conf list, etc...) see the Soap Infopackage
included into PPLX archive.
See ya in a SOAP Conf !
───────────────────────────────────────────────────────────────────────────────
▒▒▌ GREETS ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
───────────────────────────────────────────────────────────────────────────────
Gandalf/AEGiS - Tibadida!
Chicken/Tools4Fools - Thanks for your hint about the WAIT sttmt.
Hope to see you in a party next year
with more time to speak together than we
had at wired...
The doC/AEGiS - Jeanneton prend sa faucilleuuu, la rirètteu,
la rirèèè-èè-teuuuu!! :)
Number Six/AEGiS - We want Deadreader finished!
Jason Bourne/AEGiS - GP ROULAIZE! YEAHH!
Ferem/MWB/AEGiS - Don't be upset about chapi-chapo, it was
only for once, we won't do it again :)
New ID/Massive Posse
Kloy / (┤RT
Qube / Tools4Fools
Turbo-D / Triloxy
Speed Freak / Triloxy
Captain THI
Medicus / Keen Like Frogs
Locutus / mozICart
Parac / mozICart
All PPE Groups - Go on, continue to release new products,
and feel free to chat with us!
Greets also to all my contacts over the PPE scene, all sysops from the boards
where i usually log, all people that already or will send me email about PPLX,
reporting problems or just telling they use it... :) At least, greets to
Marie-Pierre, Florentine, Andrea, Iwona, Charlotte, Camille, Dominique,
Alexandra, Line, and all the nice girls who i gorget their names (shame on
me), and who will, for sure, never see this file :)
_.Lone Runner
_ _ _ ___ ___/\
_________/\ /\_____________/\________________ ___ _ _ \/\______________
/ _ \/ _________ / ______________________ / __________ /
_/ __/ \ ____)___\/ \ \_/ \/\___________ \/_
\ \ \_ \ \_ \__ \_ \_ / /
\______\ /____________/________________/_____________/____________/kP
·-------`------'---------------------------------------------------------·